import dotenv from 'dotenv'
import path from 'path'
import validateEnv from './validateEnv'

const loadEnv = () => {
  // 首先加载默认的 .env 文件
  dotenv.config()

  // 然后根据环境加载对应的环境变量文件
  const env = process.env.NODE_ENV || 'development'
  const envPath = path.resolve(process.cwd(), `.env.${env}`)

  dotenv.config({ path: envPath })

  // 验证环境变量
  const validatedEnv = validateEnv()

  // 将验证后的环境变量合并回 process.env
  Object.assign(process.env, validatedEnv)

  return validatedEnv
}

export default loadEnv
